Estimated | Actual | |||
Time (minutes) | Units (words) | Time | Units | Rates (min/word) |
203 | 1839 | 178 | 1839 | 0.10 |
在 Linux 系统中, 系统使用的所有分区都必须列在 /etc/fstab 中. 该文件包括了各个分区的挂载点 (它们在文件系统结构中所处的位置), 它们该如何 (特殊的挂载参数) 以及何时被挂载 (是否自动挂载, 普通用户是否允许挂载等).
/etc/fstab 使用一种特殊的表达方式. 每一行由六部分 (fields. Cure: 可译成 "字段" 或许更贴切, 不过用 "部分" 就简单易懂很多) 组成, 部分与部分之间由空白隔开 (一些空格, tab, 或是两者的混合). 每一部分都有其自身的含义:
运行 nano (或您喜欢的编辑器) 来创建您的 /etc/fstab:
代码清单 1: 打开 /etc/fstab |
# nano -w /etc/fstab |
我们来看看如何把对 /boot 分区的操作写进去. 这仅作为您参考用的例子, 如果您的体系并不需要 /boot 分区 (如 PPC), 请勿照抄哦.
在我们默认的 x86 分区例子中 /boot 是 /dev/hda1 分区, 使用 ext2 文件系统. 它需要在启动的时候被检查 (check), 因此, 我们这么写:
代码清单 2: /etc/fstab 中 /boot 例 | ||||||
|
有些用户不想 /boot 被自动挂载, 那么请将 default 换成 noauto. 这样, 您每次想使用该分区时都必须自己手动挂载.
为了提高性能, 许多用户会乐意使用 noatime 作为挂载参数, 由于访问次数 (access times) 不再被记录 (aren't registered) (一般情况下您都不需要记录访问次数这一功能), 这可以带来系统性能的提升. (Cure: 如果开启了这一功能, 也即是没传递 noatime 这一参数, 据我理解, 系统会对每一个文件每次访问都进行计数, 多了这么一道工序, 系统性能当然 要有所下降):
代码清单 3: 改良后的 /etc/fstab 中的 /boot 例 | ||||||
|
我们继续, 最后会得到这么三行 (分别是 /boot, / 和交换 (swap) 分区):
代码清单 4: /etc/fstab 中的三行 | ||||||||||||||||||
|
最后, 还需要为 /proc, tmpfs (必需的) 以及您的 CD-ROM 添加规则 (当然, 如果您还有其他分区, 您还可以为它们也添加):
代码清单 5: 一份完整的 /etc/fstab 例 | ||||||||||||||||||||||||||||||||||||||||||||||||
|
auto 参数会让 mount 程序自动去猜测合适的文件系统 (推荐使用于可移除的媒质, 这样就可以在一个挂载点挂载多种文件系统 (recommended for removable media as they can be created with one of many filesystems); user 参数则允许普通用户挂载光驱.
现在, 利用上面的例子开始创建您自己的 /etc/fstab 吧. 如果您是 SPARC 用户, 您还得把下面这行加到 /etc/fstab 中:
代码清单 6: 往 /etc/fstab 添加 openprom 文件系统 | ||||||
|
如果您需要 usbfs, 就把下面这行加入到 /etc/fstab 中:
代码清单 7: 往 /etc/fstab 添加 usbfs 文件系统 | ||||||
|
请再检查一遍您的 /etc/fstab, 一切无误之后, 保存退出并继续下面的内容.
(break: 18:01 - 18:32 = 31 min)用户要做的事情之一就是给她/他的爱机命名. 这看起来无甚难度, 不过许多用户都在给爱机起名这事上头痛. 为了加快我们进度, 请先了解这一点, 无论您现在给它起啥名字, 在以后都是可以改的 (Cure: 所以嘛, 实在没啥好名字就姑且随便一下下, 把其他事情都做完之后, 大把时间慢慢想). For all we care (?), 您就暂时把爱机叫做 tux, 其域为 homenetwork.
下面将以此为例, 首先我们设置主机名:
代码清单 8: 设置主机名 |
# echo tux > /etc/hostname |
然后设置域名:
代码清单 9: 设置域名 |
# echo homenetwork > /etc/dnsdomainname |
如果您有一个 NIS 域 (您要是不知道这是啥就说明您没有), 您要需要定义它:
代码清单 10: 设置 NIS 域名 |
# echo nis.homenetwork > /etc/nisdomainname |
下面把 domainname 脚本添加到默认运行级别中:
代码清单 11: 把 domainname 脚本添加到默认运行级别中 |
# rc-update add domainname default |
在您说出 "嘿, 我们不是早就配置好网络了嘛" 之前, 您应该了解一点, 在安装 gentoo 期间我们配置的网络仅仅为安装服务. (Cure: 那时的配置重启就没了). 现在我们要做的事情是为您的 Gentoo 系统配置一个持久可用的网络.
所有的网络信息都写在 /etc/conf.d/net 里了. 它使用一种简单易懂却不是那么直观 (a straightforward yet not intuitive syntax) 的表达方式 -- 如果您不知道如何手工设置网络的话就会这么觉得. 不过不用担心, 我们会向您解释所有东西的:)
首先用您喜欢的编辑器打开 /etc/conf.d/net (以下使用 nano 为例):
代码清单 12: 打开 /etc/conf.d/net 来编辑 |
# nano -w /etc/conf.d/net |
您看到的第一个变量是 iface_eth0, 它使用如下的表达式:
代码清单 13: iface_eth0 表达式 |
iface_eth0="<您的 IP 地址> broadcast <您的广播地址> netmask <您的子网掩码>" |
如果您使用 DHCP (自动 ip 获取), 您只需把 iface_eth0 的值设为 dhcp. 如果您使用 rp-pppoe (如 ADSL 用户), 只需设成 up. 如果您需要手工地设置您的网络, 可又不熟悉上面提到的术语 (terms), 请阅读理解网络术语这一部分 -- 如果您还没读过的话...
我们来看看三个例子: 例一使用 DHCP; 例二使用静态 IP (192.168.0.2), 其子网掩码为 255.255.255.0, 广播地址为 192.168.0.255 以及网关为 192.168.0.1; 例三则仅仅把网络接口 (interface) 激活, 以便随后使用 rp-pppoe:
代码清单 14: /etc/conf.d/net 例 |
(使用 DHCP) iface_eth0="dhcp" 有些网络管理员会要求您使用 DHCP 服务器提供的主机名和域名. 这种情况下, 加入下面的内容让 dhcpd 使用它们. 这将覆盖您自己的主机名和域名设置. dhcpcd_eth0="-HD" 如果您打算使用 NTP 来同步您的时间, 请使用 -N 参数以防止 dhcpd 覆盖您的文件 /etc/ntp.conf. dhcpcd_eth0="-N" (使用静态 IP) iface_eth0="192.168.0.2 broadcast 192.168.0.255 netmask 255.255.255.0" gateway="eth0/192.168.0.1" (使用 rp-pppoe) iface_eth0="up" |
如果您有多个网络接口, 那就创建更多的 iface_eth 变量即可, 如 iface_eth1, iface_eth2 等等. 至于 gateway 变量您应该只设置一次, 因为每台电脑只能有一个网关.
现在保存退出并继续下面的内容.
要让您的网络接口在启动时自动激活, 您需要把它们添加到默认运行级别中. 如果您用的是 PCMCIA 的网络接口, 请跳过这一部分操作, 因为 PCMCIA 接口是由 PCMCIA 初始化脚本来启动的.
代码清单 15: 把 net.eth0 添加到默认运行级别 |
# rc-update add net.eth0 default |
如果您有多个网络接口, 您需要为他们创建合适的初始化脚本, 如 net.eth1, net.eth2 等. 您可以使用 ln 来做到:
代码清单 16: 创建更多的初始化脚本 |
# cd /etc/init.d # ln -s net.eth0 net.eth1 # rc-update add net.eth1 default |
您现在需要告诉 Linux 网络情况. 这些信息写在 /etc/hosts 中, 一些域名服务器未能解释的主机名, 都可以经由这文件协助把主机名解释成 IP 地址. 例如, 您的内部网络由三台机器组成, 它们的主机名分别是 jenny(192.168.0.5), benny(192.168.0.6) 以及 tux(192.168.0.7 - 本机), 您需要在 /etc/hosts 中写入:
代码清单 17: 打开 /etc/hosts |
# nano -w /etc/hosts |
代码清单 18: 填入网络信息 |
127.0.0.1 localhost 192.168.0.5 jenny.homenetwork jenny 192.168.0.6 benny.homenetwork benny 192.168.0.7 tux.homenetwork tux |
如果您的机器是仅有的一台 (又或者您的域名服务器可以处理所有的域名解释), 那么下面这么一行就足够了:
代码清单 19: 光棍机 (lonely PC) 或全副武装机 (fully integrated) 用的 /etc/hosts |
127.0.0.1 localhost |
保存, 退出, 继续.
如果您没有 PCMCIA, 您可以跳到系统信息. PCMCIA 用户则请阅读下面关于 PCMCIA 的部分.
注: pcmcia-cs 仅于 x86, amd64 以及 ppc 平台上可用 |
PCMCIA 用户应首先安装 pcmcia-cs 包. "USE=-X" 用来避免在这个时候安装 xorg-x11:
代码清单 20: 安装 pcmcia-cs |
# USE="-X" emerge pcmcia-cs |
安装完毕, 则将 pcmcia 添加到默认运行级别:
代码清单 21: 把 pcmcia 添加到默认运行级别 |
# rc-update add pcmcia default |
Gentoo 使用 /etc/rc.conf 作为整体的, 系统级范围的配置. 打开 /etc/rc.conf 然后享受里面的注释吧:)
代码清单 22: 打开 /etc/rc.conf |
# nano -w /etc/rc.conf |
如您所见, 该文件注释完好以帮助您设定所需的参数. 请万分注意 KEYMAP 的设定: 一旦您选择了错误的 KEYMAP, 往键盘上敲字儿的时候您就郁闷啦 (you will get weird results).
注: 使用基于 USB (USB-base) 的 SPARC 系统或使用克隆 SPARC 的系统的用户应选择一个 i386 的 (如 "us"), 而非 "sunkeymap" 的 keymap |
PPC 在大部分系统上使用 x86 keymaps. 想要在启动时使用 ADB keymaps 的用户, 需要在他们的内核中启用 ADB 键码发送 (ABD keycode sending) 选项, 并在 rc.conf 中设定一个 mac/ppc keymap.
配置好 /etc/rc.conf 之后, 保存退出, 继续下一部分配置启动器 (Bootloader).